#ifndef TRANCEVIDEO_H
#define TRANCEVIDEO_H

#include <QString>
#include <QDebug>
#include <QThread>

extern "C"  //表明引用C语言的库
{
//    #include “libavcodec/avcodec.h"
    #include "libavcodec/avcodec.h"          //包含了所有的ffmpeg编码器解压器
    #include "libavdevice/avdevice.h"        //输入输出设备操作
    #include "libavfilter/avfilter.h"       //提供一个机制，各种的过滤（滤镜）处理
    #include "libavformat/avformat.h"       //包含处理多媒体各种不同的格式
    #include "libavutil/avutil.h"           //工具性质的函数--加密解密 数据格式转换等
    #include "libpostproc/postprocess.h"    //多媒体操作多任务处理函数
    #include "libswresample/swresample.h"   //音频操作
    #include "libswscale/swscale.h"         //只针对图像数据   缩放、像素格式转换
}

class TranceVideo : public QThread
{
    Q_OBJECT
public:
    TranceVideo();
    void openH264File(QString filepath);    //参数--打开路径
    void tranceToMp4(QString filepath);     //参数--保存路径

private:
    AVFormatContext *inFormatContext;   //H264后缀文件--代表原视频文件
    AVFormatContext *outFormatContext;  //转码后保存的文件
    AVOutputFormat *outputFormat;       //
    AVPacket * packet;  //码流数据
    int videoIndex; //视频流下标
signals:
    void sendS();

    // QThread interface
protected:
    void run();
};

#endif // TRANCEVIDEO_H
